<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta name="generator" content="HTML Tidy, see www.w3.org">
    <title>FreeBSD/sparc64 5.0-CURRENT Installation
    Instructions</title>
    <meta name="GENERATOR" content=
    "Modular DocBook HTML Stylesheet Version 1.73 ">
    <link rel="STYLESHEET" type="text/css" href="docbook.css">
  </head>

  <body class="ARTICLE" bgcolor="#FFFFFF" text="#000000" link=
  "#0000FF" vlink="#840084" alink="#0000FF">
    <div class="ARTICLE">
      <div class="TITLEPAGE">
        <h1 class="TITLE"><a name="AEN2">FreeBSD/sparc64
        5.0-CURRENT Installation Instructions</a></h1>

        <h3 class="CORPAUTHOR">The FreeBSD Project</h3>

        <p class="COPYRIGHT">Copyright &copy; 2000, 2001, 2002 by
        The FreeBSD Documentation Project</p>
        <hr>
      </div>

      <blockquote class="ABSTRACT">
        <div class="ABSTRACT">
          <a name="AEN10"></a>

          <p>This article gives some brief instructions on
          installing FreeBSD/sparc64 5.0-CURRENT. Please keep in
          mind that this port is a work in progress, and as such,
          the installation procedure is much more involved than for
          FreeBSD/i386 or FreeBSD/alpha.</p>
        </div>
      </blockquote>

      <div class="SECT1">
        <hr>

        <h1 class="SECT1"><a name="AEN12">1 Installing
        FreeBSD</a></h1>

        <p>This text describes how to install and boot the sparc64
        port. Users of this port are encouraged to subscribe to the
        FreeBSD SPARC porting mailing list <tt class=
        "EMAIL">&#60;<a href=
        "mailto:freebsd-sparc@FreeBSD.org">freebsd-sparc@FreeBSD.org</a>&#62;</tt>.</p>

        <div class="WARNING">
          <blockquote class="WARNING">
            <p><b>Warning:</b> The kernel and userland binaries
            mentioned below are highly experimental (for example,
            the kernel contains some ATA changes and EEPROM
            handling code which could potentially be dangerous).
            Unless you know what you are doing and are willing to
            cope with any damage that might arise, you should
            probably not be trying this.</p>
          </blockquote>
        </div>

        <p>Unlike FreeBSD/i386 or FreeBSD/alpha, there is no
        version of <a href=
        "http://www.FreeBSD.org/cgi/man.cgi?query=sysinstall&sektion=8&manpath=FreeBSD+5.0-current">
        <span class="CITEREFENTRY"><span class=
        "REFENTRYTITLE">sysinstall</span>(8)</span></a> for
        FreeBSD/sparc64. The installation procedure consists of
        loading a kernel (either from CDROM or the network) onto
        the sparc64 machine, with a root filesystem on CDROM or
        exported via NFS. The utilities on the root filesystem can
        then be used to partition the local disk on the sparc64
        machine and optionally to copy the FreeBSD distribution to
        the local disk to make a stand-alone machine.</p>

        <div class="SECT2">
          <hr>

          <h2 class="SECT2"><a name="AEN22">1.1
          Preparation</a></h2>

          <p>Currently, there are two ways to install
          FreeBSD/sparc64 on a new machine. By far the easier of
          the two is to install from CDROM; this method allows you
          to install FreeBSD without any dependencies on any other
          computers.</p>

          <p>If installing from CDROM is impossible or undesirable,
          the alternative is to install over the network. This
          requires another machine, suitably configured, to serve
          the boot loader, kernel, and root filesystem to the new
          machine, via a combination of RARP, TFTP, and either
          BOOTP or DHCP. This netboot server can be another FreeBSD
          machine, but is not required to be.</p>

          <p>You will need to decide which of these methods you
          want to use for installation, as this will determine the
          set of files you need to download (if any), as well as
          the steps required to do the installation.</p>

          <div class="SECT3">
            <hr>

            <h3 class="SECT3"><a name="DOWNLOADING">1.1.1
            Downloading Required Files</a></h3>

            <p>This section describes the files you will need for a
            FreeBSD/sparc64 installation. The links in this
            document point to the main FreeBSD FTP server. Please
            use a mirror site instead if possible.</p>

            <div class="IMPORTANT">
              <blockquote class="IMPORTANT">
                <p><b>Important:</b> The URLs in this section are
                provisional and subject to change. Please see the
                archives of the FreeBSD SPARC porting mailing list
                <tt class="EMAIL">&#60;<a href=
                "mailto:freebsd-sparc@FreeBSD.org">freebsd-sparc@FreeBSD.org</a>&#62;</tt>
                for the most recent locations of files. This notice
                will be removed when more permanent URLs have been
                determined.</p>
              </blockquote>
            </div>

            <div class="SECT4">
              <hr>

              <h4 class="SECT4"><a name="AEN33">1.1.1.1 Required
              Files for CDROM Installation</a></h4>

              <p>If you want to do a CDROM installation, an ISO
              image with a snapshot of FreeBSD/sparc64 can be found
              at <a href=
              "ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/"
               target=
              "_top">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/</a>.
              This file can be used to create a bootable CDROM
              which contains everything necessary to boot and load
              at least a minimal FreeBSD installation.</p>
            </div>

            <div class="SECT4">
              <hr>

              <h4 class="SECT4"><a name="AEN37">1.1.1.2 Required
              Files for Network Installation</a></h4>

              <p>For a network installation, you will need several
              files. First, you will need to download a
              FreeBSD/sparc64 loader for <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=tftpd&sektion=8&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">tftpd</span>(8)</span></a> to serve
              to your sparc64 client. The loader will use either
              TFTP or NFS to retrieve the FreeBSD kernel from the
              netboot server. There is a separate loader for each
              of these methods (i.e. a loader for TFTP and a loader
              for NFS). You should download one of the following
              files, as appropriate:</p>

              <ul>
                <li>
                  <p><a href=
                  "ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/loader-tftp.gz"
                   target=
                  "_top">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/loader-tftp.gz</a></p>
                </li>

                <li>
                  <p><a href=
                  "ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/loader-nfs.gz"
                   target=
                  "_top">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/loader-nfs.gz</a></p>
                </li>
              </ul>

              <p>A network installation also requires a kernel to
              be served to the netboot client. A suitable kernel
              can be found at <a href=
              "ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/"
               target=
              "_top">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/</a>.</p>

              <p>Finally, you will need a <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=tar&sektion=1&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">tar</span>(1)</span></a> archive
              which contains the binaries and configuration files
              from the base system. This file is available from <a
              href=
              "ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/distrib.tar.gz"
               target=
              "_top">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/distrib.tar.gz</a>.</p>
            </div>
          </div>

          <div class="SECT3">
            <hr>

            <h3 class="SECT3"><a name=
            "GETTING-TO-PROM-PROMPT">1.1.2 Getting to the PROM
            Prompt</a></h3>

            <p>Most sparc64 systems are set up to boot
            automatically from disk. To install FreeBSD, you need
            to boot over the network or from a CDROM, which
            requires you to break into the PROM (OpenFirmware).</p>

            <p>To do this, reboot the system, and wait until the
            boot message appears. It depends on the model, but
            should look about like:</p>
<pre class="SCREEN">
    Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
    Copyright 1998-2001 Sun Microsystems, Inc.  All rights reserved.
    OpenBoot 4.2, 128 MB memory installed, Serial #51090132.
    Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.
</pre>

            <p>If your system proceeds to boot from disk at this
            point, you need to press <b class="KEYCAP">L1</b>+<b
            class="KEYCAP">A</b> or <b class="KEYCAP">Stop</b>+<b
            class="KEYCAP">A</b> on the keyboard, or send a <tt
            class="COMMAND">BREAK</tt> over the serial console
            (using for example <tt class="COMMAND">~#</tt> in <a
            href=
            "http://www.FreeBSD.org/cgi/man.cgi?query=tip&sektion=1&manpath=FreeBSD+5.0-current">
            <span class="CITEREFENTRY"><span class=
            "REFENTRYTITLE">tip</span>(1)</span></a> or <a href=
            "http://www.FreeBSD.org/cgi/man.cgi?query=cu&sektion=1&manpath=FreeBSD+5.0-current">
            <span class="CITEREFENTRY"><span class=
            "REFENTRYTITLE">cu</span>(1)</span></a>) to get to the
            PROM prompt. It looks like this:</p>
<pre class="SCREEN">
    <tt class="PROMPT">ok    </tt>     <a name=
"PROMPT-SINGLE"><b>(1)</b></a>                        
    <tt class="PROMPT">ok {0}</tt>     <a name=
"PROMPT-SMP"><b>(2)</b></a>              
</pre>

            <div class="CALLOUTLIST">
              <dl compact="COMPACT">
                <dt><a href="#PROMPT-SINGLE"><b>(1)</b></a></dt>

                <dd>This is the prompt used on systems with just
                one CPU.</dd>

                <dt><a href="#PROMPT-SMP"><b>(2)</b></a></dt>

                <dd>This is the prompt used on SMP systems, the
                digit indicates the number of the active CPU.</dd>
              </dl>
            </div>
          </div>
        </div>

        <div class="SECT2">
          <hr>

          <h2 class="SECT2"><a name="AEN89">1.2 Installing from
          CDROM</a></h2>

          <p>Place the CDROM into your drive, and break into the
          PROM as described above. On the PROM prompt, type <tt
          class="COMMAND">boot cdrom</tt>. The system should boot
          into single-user mode now, and you can create the disk
          label and install the base system archive as described in
          <a href="#CREATING-DISK-LABEL">Section 1.4</a> and <a
          href="#CREATING-ROOT-FILESYSTEM">Section 1.5</a>.</p>
        </div>

        <div class="SECT2">
          <hr>

          <h2 class="SECT2"><a name="AEN95">1.3 Installing over the
          Network</a></h2>

          <div class="SECT3">
            <h3 class="SECT3"><a name="AEN97">1.3.1 Configuring the
            Netboot Server</a></h3>

            <p>A FreeBSD/sparc64 kernel is booted by having the
            firmware retrieve and execute a <b class=
            "APPLICATION">loader</b>, which in turn fetches and
            executes the actual kernel. For this boot process, you
            need to set up <a href=
            "http://www.FreeBSD.org/cgi/man.cgi?query=rarpd&sektion=8&manpath=FreeBSD+5.0-current">
            <span class="CITEREFENTRY"><span class=
            "REFENTRYTITLE">rarpd</span>(8)</span></a> and <a href=
            "http://www.FreeBSD.org/cgi/man.cgi?query=tftpd&sektion=8&manpath=FreeBSD+5.0-current">
            <span class="CITEREFENTRY"><span class=
            "REFENTRYTITLE">tftpd</span>(8)</span></a> (for the
            firmware) and <a href=
            "http://www.FreeBSD.org/cgi/man.cgi?query=bootpd&sektion=8&manpath=FreeBSD+5.0-current">
            <span class="CITEREFENTRY"><span class=
            "REFENTRYTITLE">bootpd</span>(8)</span></a> (for the <b
            class="APPLICATION">loader</b>) on another networked
            system. The loader can fetch a kernel using TFTP or
            NFS. All of this is covered in detail below.</p>

            <div class="SECT4">
              <hr>

              <h4 class="SECT4"><a name="AEN111">1.3.1.1
              rarpd</a></h4>

              <p>You need to add the Ethernet address of your
              FreeBSD/sparc64 system to <tt class=
              "FILENAME">/etc/ethers</tt> on the netboot server. An
              entry looks like:</p>
<pre class="PROGRAMLISTING">
    0:3:ba:b:92:d4 your.host.name
</pre>

              <p>The Ethernet address is usually displayed in the
              boot message.</p>

              <p>Make sure <tt class="HOSTID">your.host.name</tt>
              is in <tt class="FILENAME">/etc/hosts</tt> or has a
              valid DNS entry (or use an IP address). Then, start
              <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=rarpd&sektion=8&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">rarpd</span>(8)</span></a> on a
              network interface that is on the same subnet as the
              FreeBSD/sparc64 system.</p>
            </div>

            <div class="SECT4">
              <hr>

              <h4 class="SECT4"><a name="AEN123">1.3.1.2
              tftpd</a></h4>

              <p>Activate <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=tftpd&sektion=8&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">tftpd</span>(8)</span></a> in your <a
              href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=inetd&sektion=8&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">inetd</span>(8)</span></a>
              configuration by uncommenting the following line in
              <tt class="FILENAME">/etc/inetd.conf</tt>:</p>
<pre class="PROGRAMLISTING">
    tftp dgram udp  wait nobody /usr/libexec/tftpd tftpd /tftpboot
</pre>

              <p>Copy the unpacked loader to your <tt class=
              "FILENAME">/tftpboot</tt> directory, and name it with
              the FreeBSD/sparc64 host's IP address in upper-case
              hexadecimal notation without dots (or use
              appropriately-named symbolic links). For example,
              your setup may look like this, for an IP address of
              <tt class="HOSTID">192.168.0.16</tt>:</p>
<pre class="SCREEN">
      lrwx------  1 tmm users       9 Jul 24 17:05 /tftpboot/C0A80010 -&#62; boot/loader
      -rw-r--r--  1 tmm users 1643021 Oct 20 18:04 /tftpboot/boot/loader
</pre>

              <p>If you have trouble booting, it is very helpful to
              use <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=tcpdump&sektion=1&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">tcpdump</span>(1)</span></a> to
              monitor the TFTP requests. This will allow you to see
              the file name you need to use for the loader. Error
              replies by the TFTP server are most often due to
              incorrect file permissions.</p>
            </div>

            <div class="SECT4">
              <hr>

              <h4 class="SECT4"><a name="AEN142">1.3.1.3 Setting up
              bootpd/dhcpd</a></h4>

              <p>You can use either BOOTP or DHCP (both not both)
              to provide some parameters to the boot loader, such
              as a machine's IP address. If you are using another
              FreeBSD machine as a netboot server, the BOOTP
              functionality is provided by <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=bootpd&sektion=8&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">bootpd</span>(8)</span></a>, which is
              a part of the FreeBSD base system. Several DHCP
              servers are provided in the FreeBSD Ports
              Collection.</p>

              <p>If you are going to use <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=bootpd&sektion=8&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">bootpd</span>(8)</span></a>, create
              entries for your FreeBSD/sparc64 system in the
              server's <tt class="FILENAME">/etc/bootptab</tt> (see
              <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=bootptab&sektion=5&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">bootptab</span>(5)</span></a> for
              more details):</p>
<pre class="PROGRAMLISTING">
    .default:\
      :bf="kernel":dn=local:ds=<tt class=
"REPLACEABLE"><i>name-server-ip-address</i></tt>:\
      :gw=<tt class=
"REPLACEABLE"><i>gateway-ip-address</i></tt>:ht=ether:hd="/tftpboot/boot/kernel":hn:\
      :sa="<tt class=
"REPLACEABLE"><i>tftp-server-ip-address</i></tt>":\
      :rp="<tt class=
"REPLACEABLE"><i>tftp-server-ip-address</i></tt>:<tt class=
"REPLACEABLE"><i>nfs-root-directory</i></tt>":\
      :sm=<tt class="REPLACEABLE"><i>ip-netmask</i></tt>
    
    <tt class="REPLACEABLE"><i>name-of-the-entry</i></tt>:\
      ha=<tt class=
"REPLACEABLE"><i>sparc64-ethernet-address</i></tt>:ip=<tt class=
"REPLACEABLE"><i>sparc64-ip-address</i></tt>:tc=.default
</pre>

              <p>The Ethernet address must be the same as the one
              in the TFTP example above, but it is specified
              hexadecimal notation without colons (for the example
              above, this would be <tt class=
              "LITERAL">0003ba0b92d4</tt>). NFS/TFTP specific
              entries can be omitted if the given method is not
              used. The strings given in the <tt class=
              "LITERAL">hd</tt> and <tt class="LITERAL">bf</tt>
              properties are concatenated to give the boot file
              name. If your kernel is named differently or you use
              another directory, change these values as required.
              If you are booting using NFS, remove the <tt class=
              "LITERAL">bf</tt> and <tt class="LITERAL">hd</tt>
              settings (or change them to specify the directory and
              file inside the NFS root hierarchy in which the
              kernel will reside). The name of the host entry is
              conventionally the host name without the domain
              appended.</p>

              <p>For a DHCP server, add an entry similar to the
              following to your <tt class=
              "FILENAME">dhcpd.conf</tt> file. An example entry for
              <b class="APPLICATION">ISC DHCP</b> version 2
              (available in the FreeBSD Ports Collection as <a
              href=
              "http://www.FreeBSD.org/cgi/url.cgi?ports/net/isc-dhcp2/pkg-descr">
              <tt class="FILENAME">net/isc-dhcp2</tt></a>) is shown
              below:</p>
<pre class="PROGRAMLISTING">
    host <tt class="REPLACEABLE"><i>name-of-entry</i></tt> {
      hardware ethernet <tt class=
"REPLACEABLE"><i>sparc64-ethernet-address</i></tt>;
      option host-name "<tt class=
"REPLACEABLE"><i>sparc64-fully-qualified-domain-name</i></tt>";
      fixed-address <tt class=
"REPLACEABLE"><i>sparc64-ip-address</i></tt>;
      always-reply-rfc1048 on;
      filename "kernel";
      option root-path "<tt class=
"REPLACEABLE"><i>tftp-server-ip-address</i></tt>:<tt class=
"REPLACEABLE"><i>nfs-root-directory</i></tt>";
    }
</pre>

              <p>The <tt class="LITERAL">filename</tt> option
              corresponds to the concatenation of <tt class=
              "LITERAL">hd</tt> and <tt class="LITERAL">bf</tt> in
              <tt class="FILENAME">/etc/bootptab</tt>. The Ethernet
              address is specified in hexadecimal with colons, just
              like in the <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=rarpd&sektion=8&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">rarpd</span>(8)</span></a> example
              above. <tt class="LITERAL">options root-path</tt>
              corresponds to <tt class="LITERAL">rp</tt> in <tt
              class="FILENAME">/etc/bootptab</tt>. If the name
              given in <tt class="LITERAL">option host-name</tt> is
              resolvable, i.e. has a DNS entry or is associated
              with an address in <tt class=
              "FILENAME">/etc/hosts</tt>, the <tt class=
              "LITERAL">fixed-address</tt> specification can be
              omitted.</p>
            </div>
          </div>

          <div class="SECT3">
            <hr>

            <h3 class="SECT3"><a name="AEN197">1.3.2 Loading the
            Kernel</a></h3>

            <p>With the daemons on the netboot server configured,
            the next step is to copy the kernel (obtained during
            the steps of <a href="#DOWNLOADING">Section 1.1.1</a>)
            to an appropriate directory. There are two ways of
            retrieving a kernel over the network: TFTP and NFS.
            (You specified one of these two alternatives by picking
            a loader.)</p>

            <p>For both TFTP and NFS, the loader will use the
            parameters that it obtained via BOOTP or DHCP to find
            the kernel.</p>

            <div class="SECT4">
              <hr>

              <h4 class="SECT4"><a name="AEN202">1.3.2.1 Loading
              the Kernel over TFTP</a></h4>

              <p>Place the kernel in the directory you specified
              using <tt class="LITERAL">bf</tt> and <tt class=
              "LITERAL">hd</tt> in the <tt class=
              "FILENAME">/etc/bootptab</tt> or the <tt class=
              "LITERAL">filename</tt> parameter to <tt class=
              "FILENAME">dhcpd.conf</tt>.</p>
            </div>

            <div class="SECT4">
              <hr>

              <h4 class="SECT4"><a name="AEN210">1.3.2.2 Loading
              the Kernel over NFS</a></h4>

              <p>Export the directory that was specified by the <tt
              class="LITERAL">rp</tt> property in <tt class=
              "FILENAME">/etc/bootptab</tt> or the <tt class=
              "LITERAL">root-path</tt> parameter in <tt class=
              "FILENAME">dhcpd.conf</tt> (see <a href=
              "http://www.FreeBSD.org/cgi/man.cgi?query=exports&sektion=5&manpath=FreeBSD+5.0-current">
              <span class="CITEREFENTRY"><span class=
              "REFENTRYTITLE">exports</span>(5)</span></a>). Copy
              the kernel to the directory you specified using <tt
              class="LITERAL">bf</tt> and <tt class=
              "LITERAL">hd</tt> in the <tt class=
              "FILENAME">/etc/bootptab</tt> or the <tt class=
              "LITERAL">filename</tt> parameter to <tt class=
              "FILENAME">dhcpd.conf</tt>.</p>
            </div>
          </div>

          <div class="SECT3">
            <hr>

            <h3 class="SECT3"><a name="AEN225">1.3.3 Loading the
            Base System to the Netboot Server</a></h3>

            <p>You must extract the base system distribution image
            to the NFS root directory specified either by the <tt
            class="LITERAL">rp</tt> option in <tt class=
            "FILENAME">/etc/bootptab</tt> or the <tt class=
            "LITERAL">root-path</tt> option in <tt class=
            "FILENAME">dhcpd.conf</tt>. This directory tree will
            become the sparc64's root filesystem once the kernel is
            booted. Besides providing a normal userland
            environment, it also contains all of the necessary
            utilities for you to install the distribution on the
            sparc64 client's local disk.</p>

            <p>Using whatever editing tools you have on the netboot
            server, you probably will want to edit the sparc64's
            <tt class="FILENAME">/etc/fstab</tt> and <tt class=
            "FILENAME">/etc/rc.conf</tt> and set a <tt class=
            "USERNAME">root</tt> password.</p>
          </div>

          <div class="SECT3">
            <hr>

            <h3 class="SECT3"><a name="AEN236">1.3.4
            Booting</a></h3>

            <p>If all goes well, you can now boot the FreeBSD on
            your sparc64 machine by dropping into the PROM prompt
            as described in <a href=
            "#GETTING-TO-PROM-PROMPT">Section 1.1.2</a>. Now, just
            type <tt class="COMMAND">boot net</tt> and the system
            should boot. Specifically, the loader is retrieved via
            TFTP, it then does a BOOTP request and will proceed to
            load the kernel (either using TFTP or NFS, depending on
            your choice of loader). Then, it should wait 10 seconds
            for user input and proceed to execute the kernel.</p>

            <p>If something does not work in between, and you
            suspect TFTP/NFS/BOOTP problems, <b class=
            "APPLICATION">Ethereal</b> (available in the FreeBSD
            Ports Collection as <a href=
            "http://www.FreeBSD.org/cgi/url.cgi?ports/ net/ethereal/pkg-descr">
            <tt class="FILENAME">net/ethereal</tt></a>) is usually
            helpful. The most common problems are related to bad
            file permissions. Also note that <a href=
            "http://www.FreeBSD.org/cgi/man.cgi?query=rarpd&sektion=8&manpath=FreeBSD+5.0-current">
            <span class="CITEREFENTRY"><span class=
            "REFENTRYTITLE">rarpd</span>(8)</span></a> will not
            answer to packets under some circumstances, refer to
            the manual page for details.</p>
          </div>
        </div>

        <div class="SECT2">
          <hr>

          <h2 class="SECT2"><a name="CREATING-DISK-LABEL">1.4
          Creating a Disk Label</a></h2>

          <p>The kernel supports the Sun disk label format, so you
          can label the disks you want to use with FreeBSD from
          Solaris.</p>

          <p>FreeBSD disk labels must currently be created by hand,
          as <a href=
          "http://www.FreeBSD.org/cgi/man.cgi?query=sysinstall&sektion=8&manpath=FreeBSD+5.0-current">
          <span class="CITEREFENTRY"><span class=
          "REFENTRYTITLE">sysinstall</span>(8)</span></a> is not
          yet available on FreeBSD/sparc64. Please refer to the <a
          href=
          "http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/"
           target="_top">FreeBSD Handbook</a> for more information
          about labels and special partitions.</p>

          <p>On FreeBSD/sparc64, a Sun compatibility label is
          embedded in the FreeBSD label; this is needed for the
          PROM to boot from disk. This imposes an additional
          restriction on the disk label format: partitions are
          required to start on a cylinder boundary.</p>

          <p>To create a disk label, the following procedure is the
          easiest:</p>

          <div class="PROCEDURE">
            <ol type="1">
              <li>
                <p>Run <tt class="COMMAND">disklabel -w -r <tt
                class="REPLACEABLE"><i>device</i></tt> auto</tt> to
                create a basic disk label. The third argument you
                need specify here is just the name of the device,
                not the complete path to the device node (e.g. <tt
                class="DEVICENAME">ad0</tt> for the first ATA
                disk).</p>
              </li>

              <li>
                <p>Use <tt class="COMMAND">disklabel -e <tt class=
                "REPLACEABLE"><i>device</i></tt></tt> to open an
                editor in which you can edit the disk label. The
                information presented to you should look like:</p>
<pre class="SCREEN">
    # /dev/ad6c:
    type: unknown
    disk: amnesiac
    label:
    flags:
    bytes/sector: 512
    sectors/track: 63
    tracks/cylinder: 16
    sectors/cylinder: 1008
    cylinders: 79780
    sectors/unit: 80418240
    rpm: 3600
    interleave: 1
    trackskew: 0
    cylinderskew: 0
    headswitch: 0           # milliseconds
    track-to-track seek: 0  # milliseconds
    drivedata: 0
    
    8 partitions:
    #        size   offset    fstype   [fsize bsize bps/cpg]
      c: 80418240        0    unused        0     0         # (Cyl.    0 - 79779)
</pre>

                <p>You can now add new partitions in the same
                format as the already present line. Using <tt
                class="LITERAL">*</tt> in the offset field makes
                the procedure easier; please refer to the <a href=
                "http://www.FreeBSD.org/cgi/man.cgi?query=disklabel&sektion=8&manpath=FreeBSD+5.0-current">
                <span class="CITEREFENTRY"><span class=
                "REFENTRYTITLE">disklabel</span>(8)</span></a>
                manual page for more information.</p>

                <p>To make sure the restriction mentioned above is
                met, the size of each partition must be a multiple
                of the number of sectors per cylinder as shown in
                the information that is presented in the editor
                (1008 in the example above).</p>

                <p>When you are done, save your changes and quit
                the editor. This will cause the disk label to be
                written.</p>

                <div class="WARNING">
                  <blockquote class="WARNING">
                    <p><b>Warning:</b> This procedure will
                    overwrite any disk label that may be already
                    present on the disk. Any existing filesystems
                    on this disk must have their respective
                    partition entries in the old and new label
                    match <span class="emphasis"><i class=
                    "EMPHASIS">exactly</i></span>, or they will be
                    lost.</p>
                  </blockquote>
                </div>
              </li>

              <li>
                <p>Use <tt class="COMMAND">disklabel -B</tt> if you
                want to make the disk bootable for
                FreeBSD/sparc64.</p>

                <div class="WARNING">
                  <blockquote class="WARNING">
                    <p><b>Warning:</b> Using <tt class=
                    "COMMAND">disklabel -B</tt> on a disk will
                    overwrite any preexisting boot block, so it
                    will likely render any other operating system
                    installed on the same disk unbootable.</p>
                  </blockquote>
                </div>

                <p>If you do not want to overwrite the boot block,
                it is possible to load the <b class=
                "APPLICATION">loader</b> via TFTP as described
                above, but have it boot the kernel from disk. This
                requires a special loader binary, which is
                available at <a href=
                "ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/loader-ufs.gz"
                 target=
                "_top">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/loader-ufs.gz</a></p>
              </li>
            </ol>
          </div>
        </div>

        <div class="SECT2">
          <hr>

          <h2 class="SECT2"><a name="CREATING-ROOT-FILESYSTEM">1.5
          Creating the Root Fileystem</a></h2>

          <p>If you want to boot from a local disk, you will need
          to create a root filesystem to hold the base system
          binaries and configuration files (and optionally other
          filesystems mounted in places such as <tt class=
          "FILENAME">/usr</tt> and <tt class=
          "FILENAME">/var</tt>).</p>

          <p>The kernel contains support for Sun disklabels, so you
          can use Solaris disks, which may even be prepared using
          <b class="APPLICATION">newfs</b> under Solaris. NetBSD
          disk labels and filesystems are also usable from
          FreeBSD.</p>

          <div class="WARNING">
            <blockquote class="WARNING">
              <p><b>Warning:</b> Do <span class="emphasis"><i
              class="EMPHASIS">not</i></span> run Solaris <b class=
              "APPLICATION">fsck</b> on filesystems modified by
              FreeBSD. Doing so will damage the file
              permissions.</p>
            </blockquote>
          </div>

          <p>To create filesystems and to install the base system,
          boot from CDROM or via NFS and create a disk label as
          described in <a href="#CREATING-DISK-LABEL">Section
          1.4</a>.</p>

          <p>When booting the first time and you have not entered
          your root partition into <tt class=
          "FILENAME">/etc/fstab</tt> yet, you may need to specify
          your root partition on the mountroot prompt when booting
          (use a format like <tt class="COMMAND">ufs:<tt class=
          "REPLACEABLE"><i>disk</i></tt><tt class=
          "REPLACEABLE"><i>partition</i></tt></tt>, i.e. leave the
          slice specification out). If the kernel does
          automatically attempt to boot from another filesystem,
          press a key other than <b class="KEYCAP">Enter</b> on the
          <b class="APPLICATION">loader</b> prompt:</p>
<pre class="SCREEN">
    Hit [Enter] to boot immediately, or any other key for command prompt.
</pre>

          <p>Then, boot the kernel using <tt class="COMMAND">boot
          -a -s</tt>, which will cause the kernel to ask you for
          the root partition and then boot into single-user mode.
          Once the root filesystem has been entered into <tt
          class="FILENAME">/etc/fstab</tt>, it should be
          automatically mounted as <tt class="FILENAME">/</tt> on
          the next boot.</p>

          <p>If you are booting over the network (via NFS), the
          above BOOTP entries should suffice to have the kernel
          find and mount the root filesystem via NFS.</p>
        </div>

        <div class="SECT2">
          <hr>

          <h2 class="SECT2"><a name="INSTALLING-BASE-SYSTEM">1.6
          Installing the Base System</a></h2>

          <p>If you booted the kernel from the network, you
          downloaded a <a href=
          "http://www.FreeBSD.org/cgi/man.cgi?query=tar&sektion=1&manpath=FreeBSD+5.0-current">
          <span class="CITEREFENTRY"><span class=
          "REFENTRYTITLE">tar</span>(1)</span></a> archive with the
          base system and exported it from the netboot server via
          NFS. You can unpack this same archive to your local disk
          to create a stand-alone system (remember to copy the
          kernel over as well).</p>

          <p>If you booted from CDROM, the same archive is
          available in <tt class="FILENAME">/root/</tt> on the
          CDROM.</p>

          <p>Before booting the system stand-alone, you will want
          to edit <tt class="FILENAME">/etc/fstab</tt> and <tt
          class="FILENAME">/etc/rc.conf</tt> and set a <tt class=
          "USERNAME">root</tt> password.</p>

          <p>Note that some programs from the base system may not
          be present in the archive, or may not work properly
          yet.</p>
        </div>
      </div>
    </div>
    <hr>

    <p align="center"><small>This file, and other release-related
    documents, can be downloaded from <a href=
    "ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/">ftp://ftp.FreeBSD.org/pub/FreeBSD/development/sparc64/</a>.</small></p>

    <p align="center"><small>For questions about FreeBSD, read the
    <a href="http://www.FreeBSD.org/docs.html">documentation</a>
    before contacting &#60;<a href=
    "mailto:questions@FreeBSD.org">questions@FreeBSD.org</a>&#62;.</small></p>

    <p align="center"><small><small>All users of FreeBSD 5-CURRENT
    should subscribe to the &#60;<a href=
    "mailto:current@FreeBSD.org">current@FreeBSD.org</a>&#62;
    mailing list.</small></small></p>

    <p align="center">For questions about this documentation,
    e-mail &#60;<a href=
    "mailto:doc@FreeBSD.org">doc@FreeBSD.org</a>&#62;.</p>
    <br>
    <br>
  </body>
</html>

